package com.kinghood.productcenter.common.model.dto.base;

import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.kinghood.productcenter.common.model.enums.base.AttributeValueCodeEnum;
import com.kinghood.sharding.model.KingHoodDefaultSort;
import com.kinghood.sharding.model.KingPageReqDTO;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;

/**
 * 列表查询dto
 *
 * @author jp
 * @date 2023/12/21
 */
@Data
public class ListAttributeQueryDTO extends KingPageReqDTO implements KingHoodDefaultSort, Serializable {
    public static final String DEFAULT_COLUMN = "createTime";

    /**
     * 属性编码
     */
    private String attributeCode;

    /**
     * 属性名
     */
    private String attributeName;

    /**
     * 属性值编码
     */
    private String itemCode;

    /**
     * 属性值
     */
    private String itemValue;

    /**
     * 属性分组id
     */
    private Long attributeGroupId;

    /**
     * 状态（0：停用，1：启用）
     */
    private Integer status;

    /**
     * 属性类别 1：系统预设，2：自定义
     */
    private Integer attributeType;

    /**
     * 属性值类型编码
     * {@link AttributeValueCodeEnum}
     */
    private String valueCode;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    private LocalDateTime endTime;

    /**
     * 开始更新时间
     */
    private LocalDateTime startUpdateTime;

    /**
     * 结束更新时间
     */
    private LocalDateTime endUpdateTime;

    /**
     * id列表
     */
    private List<Long> idList;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * sheet名称
     */
    private String sheetName;

    /**
     * 要下载字段
     */
    private List<String> downloadField;

    @Override
    public List<OrderItem> getDefaultSort() {
        OrderItem one = OrderItem.desc(DEFAULT_COLUMN);
        return Collections.singletonList(one);
    }

    @Override
    public List<OrderItem> getTailSort() {
        return null;
    }
}
